diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 37fb3105e9eb36c8410ca4b1dec1dc24829c9cbc..708706e0d7f67adc2c5e913ba05a223bc91c8fd2 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -297,10 +297,9 @@ function entity_load_multiple_by_properties($entity_type, array $values) {
  *   The unchanged entity, or FALSE if the entity cannot be loaded.
  */
 function entity_load_unchanged($entity_type, $id) {
-  $controller = drupal_container()->get('plugin.manager.entity')->getStorageController($entity_type);
-  $controller->resetCache(array($id));
-  $result = $controller->load(array($id));
-  return reset($result);
+  return drupal_container()->get('plugin.manager.entity')
+    ->getStorageController($entity_type)
+    ->loadUnchanged($id);
 }
 
 /**
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
index a957e4d4ed76557e898a0786424e824ddd7fa93c..92e4be39020d514e0472dc1fbd566aa928046205 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
@@ -142,6 +142,15 @@ public function load(array $ids = NULL) {
     return $entities;
   }
 
+  /**
+   * Implements \Drupal\Core\Entity\EntityStorageControllerInterface::loadUnchanged()
+   */
+  public function loadUnchanged($id) {
+    $this->resetCache(array($id));
+    $result = $this->load(array($id));
+    return reset($result);
+  }
+
   /**
    * Implements Drupal\Core\Entity\EntityStorageControllerInterface::loadRevision().
    */
diff --git a/core/lib/Drupal/Core/Entity/DatabaseStorageController.php b/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
index 9092a1372490f3e3b8ffe503380ae4f86dbf8cef..1c7d9fd13d4481454d7d88c51deb75abbead9e58 100644
--- a/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
+++ b/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
@@ -235,6 +235,15 @@ public function load(array $ids = NULL) {
     return $entities;
   }
 
+  /**
+   * Implements \Drupal\Core\Entity\EntityStorageControllerInterface::loadUnchanged()
+   */
+  public function loadUnchanged($id) {
+    $this->resetCache(array($id));
+    $result = $this->load(array($id));
+    return reset($result);
+  }
+
   /**
    * Implements \Drupal\Core\Entity\EntityStorageControllerInterface::loadRevision().
    */
diff --git a/core/lib/Drupal/Core/Entity/EntityStorageControllerInterface.php b/core/lib/Drupal/Core/Entity/EntityStorageControllerInterface.php
index ef69cb6a1a4590408c08dd9c19ecb7d8d022538a..4ac5d9a19984aaf3403096bdf3d24bdb60a53f3b 100644
--- a/core/lib/Drupal/Core/Entity/EntityStorageControllerInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityStorageControllerInterface.php
@@ -40,6 +40,20 @@ public function resetCache(array $ids = NULL);
    */
   public function load(array $ids = NULL);
 
+  /**
+   * Loads an unchanged entity from the database.
+   *
+   * @param mixed $id
+   *   The ID of the entity to load.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface
+   *   The unchanged entity, or FALSE if the entity cannot be loaded.
+   *
+   * @todo Remove this method once we have a reliable way to retrieve the
+   *   unchanged entity from the entity object.
+   */
+  public function loadUnchanged($id);
+
   /**
    * Load a specific entity revision.
    *