diff --git a/core/lib/Drupal/Core/Database/Schema.php b/core/lib/Drupal/Core/Database/Schema.php
index b588756..4a1053f 100644
--- a/core/lib/Drupal/Core/Database/Schema.php
+++ b/core/lib/Drupal/Core/Database/Schema.php
@@ -263,6 +263,15 @@ function prefixNonTable($table) {
   }
 
   /**
+   * Get a fully qualified table name.
+   */
+  function GetFullQualifiedTableName($table) {
+    $table_info = $this->getPrefixInfo($table, TRUE);
+    $info = $this->connection->getConnectionOptions();
+    return implode('.', array($info['database'], $table_info['schema'], $table_info['table']));
+  }
+
+  /**
    * Build a condition to match a table name against a standard information_schema.
    *
    * The information_schema is a SQL standard that provides information about the
diff --git a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
index 59e075c..e450179 100644
--- a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
+++ b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
@@ -207,10 +207,7 @@ public function messageTableName() {
    *   The fully qualified map table name.
    */
   public function getQualifiedMapTableName() {
-    $database = $this->getDatabase();
-    $options = $database->getConnectionOptions();
-    $prefix = $database->tablePrefix($this->mapTableName);
-    return $options['database'] . '.' . $prefix . $this->mapTableName;
+    return $this->getDatabase()->schema()->GetFullQualifiedTableName($this->mapTableName);
   }
 
   /**
