diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index e115bd2..3b6d462 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -453,6 +453,24 @@ protected function mapFromStorageRecords(array $records, $load_from_revision = F
       return array();
     }
 
+    // Unserialize the values of serializable single-value base field columns.
+    $table_mapping = $this->getTableMapping();
+    $field_names = $table_mapping->getFieldNames($this->baseTable);
+    foreach ($field_names as $field_name) {
+      if (empty($this->getFieldStorageDefinitions()[$field_name])) {
+        throw new EntityStorageException("Table mapping contains invalid field $field_name.");
+      }
+      $definition = $this->getFieldStorageDefinitions()[$field_name];
+      $columns = $table_mapping->getColumnNames($field_name);
+      foreach ($columns as $column_name => $schema_name) {
+        if (!empty($definition->getSchema()['columns'][$column_name]['serialize'])) {
+          foreach ($records as $record) {
+            $record->$schema_name = unserialize($record->$schema_name);
+          }
+        }
+      }
+    }
+
     $values = array();
     foreach ($records as $id => $record) {
       $values[$id] = array();
