diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
index 8e4deba..6a450cc 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
@@ -127,7 +127,6 @@ protected function installedStorageSchema() {
    */
   public function requiresEntityStorageSchemaChanges(EntityTypeInterface $entity_type, EntityTypeInterface $original) {
     return
-      $entity_type->getStorageClass() != $original->getStorageClass() ||
       $entity_type->isRevisionable() != $original->isRevisionable() ||
       $entity_type->isTranslatable() != $original->isTranslatable() ||
       $this->hasSharedTableNameChanges($entity_type, $original) ||
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
index 699bdba..2fdf9a1 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
@@ -48,7 +48,7 @@ class SqlContentEntityStorageSchemaTest extends UnitTestCase {
   /**
    * The storage schema handler used in this test.
    *
-   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema.
+   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema|\PHPUnit_Framework_MockObject_MockObject.
    */
   protected $storageSchema;
 
@@ -1163,6 +1163,96 @@ public function testRequiresEntityDataMigration($updated_entity_type_definition,
   }
 
   /**
+   * @covers ::requiresEntityStorageSchemaChanges
+   */
+  public function testRequiresEntityStorageSchemaChanges() {
+    $this->entityType = new ContentEntityType(array(
+      'id' => 'entity_test',
+      'entity_keys' => array('id' => 'id'),
+    ));
+
+    $this->setUpStorageSchema();
+    $table_mapping = new DefaultTableMapping($this->entityType, $this->storageDefinitions);
+    $table_mapping->setFieldNames('entity_test', array_keys($this->storageDefinitions));
+    $table_mapping->setExtraColumns('entity_test', array('default_langcode'));
+    $this->storage->expects($this->any())
+      ->method('getTableMapping')
+      ->will($this->returnValue($table_mapping));
+
+    $updated_entity_type_definition = $this->getMockBuilder('\Drupal\Core\Entity\ContentEntityTypeInterface')
+      ->getMock();
+    $original_entity_type_definition = $this->getMockBuilder('\Drupal\Core\Entity\ContentEntityTypeInterface')
+      ->getMock();
+
+    $updated_entity_type_definition->expects($this->any())
+      ->method('id')
+      ->willReturn($this->entityType->id());
+    $updated_entity_type_definition->expects($this->any())
+      ->method('getKey')
+      ->willReturn('id');
+    $original_entity_type_definition->expects($this->any())
+      ->method('id')
+      ->willReturn($this->entityType->id());
+    $original_entity_type_definition->expects($this->any())
+      ->method('getKey')
+      ->willReturn('id');
+
+    // Case 1: Storage class changes should not impact this at all.
+    $updated_entity_type_definition->expects($this->never())
+      ->method('getStorageClass');
+    $original_entity_type_definition->expects($this->never())
+      ->method('getStorageClass');
+    $expected = [
+      'entity_test' => [
+        'primary key' => ['id'],
+      ],
+    ];
+    $this->storageSchema->expects($this->any())
+      ->method('loadEntitySchemaData')
+      ->willReturn($expected);
+    $this->assertFalse($this->storageSchema->requiresEntityStorageSchemaChanges($updated_entity_type_definition, $original_entity_type_definition));
+
+    // Case 2: A change in the entity schema should result in required changes.
+    $this->setUpStorageSchema();
+    $this->storageSchema->expects($this->once())
+      ->method('loadEntitySchemaData')
+      ->willReturn(array());
+    $this->assertTrue($this->storageSchema->requiresEntityStorageSchemaChanges($updated_entity_type_definition, $original_entity_type_definition));
+
+    // Case 3: Has shared table changes should result in required changes.
+    $this->setUpStorageSchema();
+    $this->storageSchema->expects($this->once())
+      ->method('hasSharedTableNameChanges')
+      ->willReturn(TRUE);
+    $this->assertTrue($this->storageSchema->requiresEntityStorageSchemaChanges($updated_entity_type_definition, $original_entity_type_definition));
+
+    // Case 4: Changing translation should result in required changes.
+    $this->setUpStorageSchema();
+    $updated_entity_type_definition->expects($this->once())
+      ->method('isTranslatable')
+      ->willReturn(FALSE);
+    $original_entity_type_definition->expects($this->once())
+      ->method('isTranslatable')
+      ->willReturn(TRUE);
+    $this->assertTrue($this->storageSchema->requiresEntityStorageSchemaChanges($updated_entity_type_definition, $original_entity_type_definition));
+
+    // Case 5: Changing revisionable should result in required changes.
+    $this->setUpStorageSchema();
+    $updated_entity_type_definition->expects($this->any())
+      ->method('isRevisionable')
+      ->willReturn(FALSE);
+    $original_entity_type_definition->expects($this->any())
+      ->method('isRevisionable')
+      ->willReturn(TRUE);
+    $this->assertTrue($this->storageSchema->requiresEntityStorageSchemaChanges($updated_entity_type_definition, $original_entity_type_definition));
+
+  }
+
+  /**
+   * Data provider
+   */
+
+  /**
    * Sets up the storage schema object to test.
    *
    * This uses the field definitions set in $this->storageDefinitions.
@@ -1216,7 +1306,7 @@ protected function setUpStorageSchema(array $expected = array()) {
     $key_value = $this->getMock('Drupal\Core\KeyValueStore\KeyValueStoreInterface');
     $this->storageSchema = $this->getMockBuilder('Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema')
       ->setConstructorArgs(array($this->entityManager, $this->entityType, $this->storage, $connection))
-      ->setMethods(array('installedStorageSchema'))
+      ->setMethods(array('installedStorageSchema', 'loadEntitySchemaData', 'hasSharedTableNameChanges'))
       ->getMock();
     $this->storageSchema
       ->expects($this->any())
