diff --git a/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers.rb b/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers.rb
index 01ff3dcbfb85630290a73b0a4990e68858c17759..2a9d37452bdcdc46c528c5d8e353458744ac8e00 100644
--- a/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers.rb
+++ b/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers.rb
@@ -22,10 +22,8 @@ def execute
             log "This process prevents the migration from acquiring the necessary locks"
             log "Query: `#{wraparound_vacuum[:query]}`"
             log "Current duration: #{wraparound_vacuum[:duration].inspect}"
-            log "Process id: #{wraparound_vacuum[:pid]}"
-            log "You can wait until it completes or if absolutely necessary interrupt it using: " \
-                "`select pg_cancel_backend(#{wraparound_vacuum[:pid]});`"
-            log "Be aware that a new process will kick in immediately, so multiple interruptions " \
+            log "You can wait until it completes or if absolutely necessary interrupt it, " \
+                "but be aware that a new process will kick in immediately, so multiple interruptions " \
                 "might be required to time it right with the locks retry mechanism"
           end
 
@@ -48,10 +46,9 @@ def transform_wraparound_vacuum
 
           def raw_wraparound_vacuum
             connection.select_all(<<~SQL.squish)
-              SELECT pid, state, age(clock_timestamp(), query_start) as duration, query
-                FROM pg_stat_activity
+              SELECT age(clock_timestamp(), query_start) as duration, query
+                FROM postgres_pg_stat_activity_autovacuum()
                 WHERE query ILIKE '%VACUUM%' || #{quoted_table_name} || '%(to prevent wraparound)'
-                AND backend_type = 'autovacuum worker'
                 LIMIT 1
             SQL
           end
diff --git a/spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb b/spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb
index eb67e81f677baa05d5b17c7c68d067e868d23bcd..f7d11184ac7d3ed9874f4d9c13c9a451107f0372 100644
--- a/spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb
+++ b/spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb
@@ -36,7 +36,7 @@
 
       context 'with wraparound vacuuum running' do
         before do
-          swapout_view_for_table(:pg_stat_activity, connection: migration.connection)
+          swapout_view_for_table(:pg_stat_activity, connection: migration.connection, schema: 'pg_temp')
 
           migration.connection.execute(<<~SQL.squish)
             INSERT INTO pg_stat_activity (
@@ -44,7 +44,7 @@
               state_change, wait_event_type, wait_event, state, backend_xmin,
               query, backend_type)
             VALUES (
-              16401, 'gitlabhq_dblab', 178, '2023-03-30 08:10:50.851322+00',
+              16401, current_database(), 178, '2023-03-30 08:10:50.851322+00',
               '2023-03-30 08:10:50.890485+00', now() - '150 minutes'::interval,
               '2023-03-30 08:10:50.890485+00', 'IO', 'DataFileRead', 'active','3214790381'::xid,
               'autovacuum: VACUUM public.ci_builds (to prevent wraparound)', 'autovacuum worker')
@@ -58,8 +58,6 @@
 
         it { expect { subject }.to output(/autovacuum: VACUUM public.ci_builds \(to prevent wraparound\)/).to_stdout }
         it { expect { subject }.to output(/Current duration: 2 hours, 30 minutes/).to_stdout }
-        it { expect { subject }.to output(/Process id: 178/).to_stdout }
-        it { expect { subject }.to output(/`select pg_cancel_backend\(178\);`/).to_stdout }
 
         context 'when GITLAB_MIGRATIONS_DISABLE_WRAPAROUND_CHECK is set' do
           before do
diff --git a/spec/support/helpers/database/database_helpers.rb b/spec/support/helpers/database/database_helpers.rb
index a7f6b4e5cc26effc073d62186b31a7c0bea0ce8c..ff694bcd15b8bff672450c256503ecdc7450b70f 100644
--- a/spec/support/helpers/database/database_helpers.rb
+++ b/spec/support/helpers/database/database_helpers.rb
@@ -4,11 +4,13 @@ module Database
   module DatabaseHelpers
     # In order to directly work with views using factories,
     # we can swapout the view for a table of identical structure.
-    def swapout_view_for_table(view, connection:)
+    def swapout_view_for_table(view, connection:, schema: nil)
+      table_name = [schema, "_test_#{view}_copy"].compact.join('.')
+
       connection.execute(<<~SQL.squish)
-        CREATE TABLE _test_#{view}_copy (LIKE #{view});
+        CREATE TABLE #{table_name} (LIKE #{view});
         DROP VIEW #{view};
-        ALTER TABLE _test_#{view}_copy RENAME TO #{view};
+        ALTER TABLE #{table_name} RENAME TO #{view};
       SQL
     end