diff --git a/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk/query_processor_test.clj b/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk/query_processor_test.clj
index 43705167ccac0cd013f8ed58454c46d5db841813..9569934e64752ec854999f0a25f3ed06e00677be 100644
--- a/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk/query_processor_test.clj
+++ b/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk/query_processor_test.clj
@@ -16,6 +16,7 @@
             [metabase.sync :as sync]
             [metabase.test :as mt]
             [metabase.test.data.bigquery-cloud-sdk :as bigquery.tx]
+            [metabase.test.util :as tu]
             [metabase.test.util.timezone :as tu.tz]
             [metabase.util :as u]
             [metabase.util.honeysql-extensions :as hx]
@@ -487,7 +488,7 @@
 
 (defn- do-with-datetime-timestamp-table [f]
   (driver/with-driver :bigquery-cloud-sdk
-    (let [table-name (name (munge (gensym "table_")))]
+    (let [table-name (format "table_%s" (tu/random-name))]
       (mt/with-temp-copy-of-db
         (try
           (bigquery.tx/execute!
diff --git a/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk_test.clj b/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk_test.clj
index 1d941a95625198a39d9b11ad2c4a20afc6778bad..29b37c262740329e97e145b6d0b329bfc5984f60 100644
--- a/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk_test.clj
+++ b/modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk_test.clj
@@ -76,7 +76,7 @@
 
 (defn- do-with-view [f]
   (driver/with-driver :bigquery-cloud-sdk
-    (let [view-name (name (munge (gensym "view_")))]
+    (let [view-name (format "view_%s" (tu/random-name))]
       (mt/with-temp-copy-of-db
         (try
           (bigquery.tx/execute!
diff --git a/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj b/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj
index 9125d43a6b2c946a21ae6c7d7f5460f2d176e351..6b5c6aa917d0f29fd9f6366de174a72ce742bff4 100644
--- a/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj
+++ b/modules/drivers/bigquery/test/metabase/driver/bigquery/query_processor_test.clj
@@ -16,6 +16,7 @@
             [metabase.sync :as sync]
             [metabase.test :as mt]
             [metabase.test.data.bigquery :as bigquery.tx]
+            [metabase.test.util :as tu]
             [metabase.test.util.timezone :as tu.tz]
             [metabase.util :as u]
             [metabase.util.honeysql-extensions :as hx]
@@ -223,27 +224,27 @@
 (deftest remove-remark-test
   (mt/test-driver :bigquery
     (is (=  (str
-            "SELECT `v3_test_data.venues`.`id` AS `id`,"
-            " `v3_test_data.venues`.`name` AS `name` "
-            "FROM `v3_test_data.venues` "
-            "LIMIT 1")
-    (tt/with-temp* [Database [db {:engine :bigquery
-                                  :details (assoc (:details (mt/db))
-                                                  :include-user-id-and-hash false)}]
-                    Table    [table {:name "venues" :db_id (u/the-id db)}]
-                    Field    [_     {:table_id (u/the-id table)
-                                    :name "id"
-                                    :base_type "type/Integer"}]
-                    Field    [_     {:table_id (u/the-id table)
-                                    :name "name"
-                                    :base_type "type/Text"}]]
-      (query->native
-        {:database (u/the-id db)
-        :type     :query
-        :query    {:source-table (u/the-id table)
-                    :limit        1}
-        :info     {:executed-by 1000
-                    :query-hash  (byte-array [1 2 3 4])}}))))))
+             "SELECT `v3_test_data.venues`.`id` AS `id`,"
+             " `v3_test_data.venues`.`name` AS `name` "
+             "FROM `v3_test_data.venues` "
+             "LIMIT 1")
+            (tt/with-temp* [Database [db {:engine :bigquery
+                                          :details (assoc (:details (mt/db))
+                                                          :include-user-id-and-hash false)}]
+                            Table    [table {:name "venues" :db_id (u/the-id db)}]
+                            Field    [_     {:table_id (u/the-id table)
+                                             :name "id"
+                                             :base_type "type/Integer"}]
+                            Field    [_     {:table_id (u/the-id table)
+                                             :name "name"
+                                             :base_type "type/Text"}]]
+              (query->native
+                {:database (u/the-id db)
+                 :type     :query
+                 :query    {:source-table (u/the-id table)
+                            :limit        1}
+                 :info     {:executed-by 1000
+                            :query-hash  (byte-array [1 2 3 4])}}))))))
 
 (deftest unprepare-params-test
   (mt/test-driver :bigquery
@@ -487,7 +488,7 @@
 
 (defn- do-with-datetime-timestamp-table [f]
   (driver/with-driver :bigquery
-    (let [table-name (name (munge (gensym "table_")))]
+    (let [table-name (format "table_%s" (tu/random-name))]
       (mt/with-temp-copy-of-db
         (try
           (bigquery.tx/execute!
diff --git a/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj b/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj
index 58ce619f3ca4926c881310b9ca4056562dc09a23..aa21255fe620866c0981d2a9c46acb55068af40e 100644
--- a/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj
+++ b/modules/drivers/bigquery/test/metabase/driver/bigquery_test.clj
@@ -58,7 +58,7 @@
 
 (defn- do-with-view [f]
   (driver/with-driver :bigquery
-    (let [view-name (name (munge (gensym "view_")))]
+    (let [view-name (format "view_%s" (tu/random-name))]
       (mt/with-temp-copy-of-db
         (try
           (bigquery.tx/execute!
diff --git a/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj b/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj
index f091da47d104abf488a5abe92b767958d836492a..cec0a003ce0a362f9a6cb28e29c9f9b3559139af 100644
--- a/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj
+++ b/modules/drivers/bigquery/test/metabase/test/data/bigquery.clj
@@ -33,10 +33,27 @@
 
 ;;; ----------------------------------------------- Connection Details -----------------------------------------------
 
+;; keep track of databases we have already created
+(def ^:private existing-datasets
+  (atom #{}))
+
+(def ^:private current-dataset-version-prefix "v3_")
+
+(defn- prefix-legacydriver-if-new
+  "Adds a legacydriver_ prefix to the db-name, if the `existing-dataset` atom does not contain it. This is to ensure
+  that transient datasets created and destroyed by these tests do not interfere with parallel test runs for the new
+  BigQuery driver (which are also creating and destroying datasets that would have the same name, if not for this
+  change). If the `db-name` is already an existing one, however, the assumption is it's not transient (i.e. not being
+  created and destroyed at test time), and hence, it can keep its name without modification."
+  [db-name]
+  (if (contains? @existing-datasets db-name)
+    db-name
+    (str/replace-first db-name current-dataset-version-prefix (str current-dataset-version-prefix "legacydriver_"))))
+
 (defn- normalize-name ^String [db-or-table-or-field identifier]
   (let [s (str/replace (name identifier) "-" "_")]
     (case db-or-table-or-field
-      :db             (str "v3_" s)
+      :db             (prefix-legacydriver-if-new (str current-dataset-version-prefix s))
       (:table :field) s)))
 
 (def ^:private details
@@ -325,10 +342,6 @@
         :when   (not (str/includes? dataset-name "checkins_interval_"))]
     dataset-name))
 
-;; keep track of databases we haven't created yet
-(def ^:private existing-datasets
-  (atom #{}))
-
 (defmethod tx/create-db! :bigquery [_ {:keys [database-name table-definitions]} & _]
   {:pre [(seq database-name) (sequential? table-definitions)]}
   ;; fetch existing datasets if we haven't done so yet