diff --git a/core/modules/views/views.install b/core/modules/views/views.install
index 5d63efa..fe43439 100644
--- a/core/modules/views/views.install
+++ b/core/modules/views/views.install
@@ -35,44 +35,88 @@ function views_update_last_removed() {
 }
 
 /**
- * Convert settings to the config system.
+ * Defines the views schema as of update 8000.
  */
-function views_update_8000() {
-  update_variables_to_config('views.settings', array(
-    'views_ui_show_listing_filters' => 'ui.show.listing_filters',
-    'views_ui_show_master_display' => 'ui.show.master_display',
-    'views_ui_show_advanced_column' => 'ui.show.advanced_column',
-    'views_ui_display_embed' => 'ui.show.display_embed',
-    'views_ui_custom_theme' => 'ui.custom_theme',
-    'views_exposed_filter_any_label' => 'exposed_filter_any_label',
-    'views_ui_always_live_preview' => 'ui.always_live_preview',
-    'views_ui_always_live_preview_button' => 'ui.always_live_preview_button',
-    'views_ui_show_preview_information' => 'ui.show.preview_information',
-    'views_ui_show_sql_query_where' => 'ui.show.sql_query.where',
-    'views_ui_show_sql_query' => 'ui.show_sql.query.enabled',
-    'views_ui_show_performance_statistics' => 'ui.show.performance_statistics',
-    'views_show_additional_queries' => 'ui.show.additional_queries',
-    'views_skip_cache' => 'skip_cache',
-    'views_sql_signature' => 'sql_signature',
-    'views_no_javascript' => 'no_javascript',
-    'views_devel_output' => 'debug.output',
-    'views_devel_region' => 'debug.region',
-    'views_display_extenders' => 'display_extenders',
-  ));
-}
+function views_schema_8000() {
+  $cache_schema = array(
+    'description' => 'Generic cache table for caching things not separated out into their own tables. Contributed modules may also use this to store cached items.',
+    'fields' => array(
+      'cid' => array(
+        'description' => 'Primary Key: Unique cache ID.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'data' => array(
+        'description' => 'A collection of data to cache.',
+        'type' => 'blob',
+        'not null' => FALSE,
+        'size' => 'big',
+      ),
+      'expire' => array(
+        'description' => 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'created' => array(
+        'description' => 'A Unix timestamp indicating when the cache entry was created.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'serialized' => array(
+        'description' => 'A flag to indicate whether content is serialized (1) or not (0).',
+        'type' => 'int',
+        'size' => 'small',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'tags' => array(
+        'description' => 'Space-separated list of cache tags for this entry.',
+        'type' => 'text',
+        'size' => 'big',
+        'not null' => FALSE,
+      ),
+      'checksum' => array(
+        'description' => 'The tag invalidation sum when this entry was saved.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+    ),
+    'indexes' => array(
+      'expire' => array('expire'),
+    ),
+    'primary key' => array('cid'),
+  );
+  $schema['cache_views_info'] = $cache_schema;
+  $schema['cache_views_results'] = $cache_schema;
+  $schema['cache_views_results']['description'] = 'Cache table for views to store pre-rendered queries, results, and display output.';
+  $schema['cache_views_results']['fields']['serialized']['default'] = 1;
+
+  return $schema;
 
-/**
- * Rename the {cache_views} and {cache_views_data} tables.
- */
-function views_update_8001() {
-  db_rename_table('cache_views', 'cache_views_info');
-  db_rename_table('cache_views_data', 'cache_views_results');
 }
 
 /**
- * Remove the {views_view} and {views_display} table.
+ * Install the Views schema if it was not installed.
+ *
+ * Since Views may already be installed on the site from D7 contrib, the D8
+ * Views schema might not be installed. Manually create the tables if they are
+ * missing.
+ *
+ * Data migration from Drupal 7 versions of Views is performed with
+ * the views_d8_upgrade contributed module.
  */
-function views_update_8002() {
-  db_drop_table('views_view');
-  db_drop_table('views_display');
+function views_update_8000() {
+  $schema = views_schema_8000();
+  _drupal_schema_initialize($schema, 'views', FALSE);
+
+  foreach ($schema as $name => $table) {
+    if (!db_table_exists($name)) {
+      db_create_table($name, $table);
+    };
+  }
 }
