diff --git a/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php b/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php
index eb05f5069fb8e418e67a74a8d58cd3717b64077c..fed41979df77eff4214f1342dfbfcd078d0cb6a3 100644
--- a/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php
+++ b/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php
@@ -522,11 +522,13 @@ class ConnectionMigrator
                 // just for this index.
                 foreach ($changedTable->renamedIndexes as $key => $renamedIndex) {
                     $indexDiff = clone $tableDiff;
-                    $indexDiff->renamedIndexes = [$key => $renamedIndex];
+                    $indexDiff->renamedIndexes = [
+                        $changedTable->getOldTable()->getIndex($key)->getQuotedName($databasePlatform) => $renamedIndex,
+                    ];
 
                     $temporarySchemaDiff = new SchemaDiff(
                         [],
-                        [$indexDiff],
+                        [$indexDiff->getOldTable()->getQuotedName($databasePlatform) => $indexDiff],
                         [],
                         $schemaDiff->fromSchema
                     );
@@ -634,6 +636,7 @@ class ConnectionMigrator
      */
     protected function getUnusedTableUpdateSuggestions(SchemaDiff $schemaDiff): array
     {
+        $databasePlatform = $this->connection->getDatabasePlatform();
         $updateSuggestions = [];
         foreach ($schemaDiff->changedTables as $tableDiff) {
             // Skip tables that are not being renamed or where the new name isn't prefixed
@@ -643,15 +646,10 @@ class ConnectionMigrator
             ) {
                 continue;
             }
-            // Build a new schema diff that only contains this table
-            $changedFieldDiff = new SchemaDiff(
-                [],
-                [$tableDiff],
-                [],
-                $schemaDiff->fromSchema
+            $statements = $databasePlatform->getRenameTableSQL(
+                $tableDiff->getOldTable()->getQuotedName($databasePlatform),
+                $tableDiff->newName
             );
-
-            $statements = $changedFieldDiff->toSql($this->connection->getDatabasePlatform());
             foreach ($statements as $statement) {
                 $updateSuggestions['change_table'][md5($statement)] = $statement;
             }
@@ -674,21 +672,21 @@ class ConnectionMigrator
     {
         $changedTables = [];
 
+        $databasePlatform = $this->connection->getDatabasePlatform();
         foreach ($schemaDiff->changedTables as $index => $changedTable) {
             if (count($changedTable->changedColumns) === 0) {
                 continue;
             }
 
-            $databasePlatform = $this->getDatabasePlatform($index);
-
             // Treat each changed column with a new diff to get a dedicated suggestions
             // just for this single column.
-            foreach ($changedTable->changedColumns as $oldFieldName => $changedColumn) {
+            foreach ($changedTable->changedColumns as $index => $changedColumn) {
                 // Field has not been renamed
                 if ($changedColumn->getOldColumnName()->getName() === $changedColumn->column->getName()) {
                     continue;
                 }
 
+                $oldFieldName = $changedColumn->getOldColumn()->getQuotedName($databasePlatform);
                 $renameColumnTableDiff = new TableDiff(
                     $changedTable->name,
                     [],
@@ -699,12 +697,12 @@ class ConnectionMigrator
                     [],
                     $this->buildQuotedTable($schemaDiff->fromSchema->getTable($changedTable->name))
                 );
-                if ($databasePlatform === 'postgresql') {
+                if ($databasePlatform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform) {
                     $renameColumnTableDiff->renamedColumns[$oldFieldName] = $changedColumn->column;
                 }
                 $changedTables[$index . ':' . $changedColumn->column->getName()] = $renameColumnTableDiff;
 
-                if ($databasePlatform === 'sqlite') {
+                if ($databasePlatform instanceof SqlitePlatform) {
                     break;
                 }
             }