diff --git a/core/modules/node/tests/src/Unit/Plugin/views/field/NodeBulkFormTest.php b/core/modules/node/tests/src/Unit/Plugin/views/field/NodeBulkFormTest.php
index 82836e0..0069962 100644
--- a/core/modules/node/tests/src/Unit/Plugin/views/field/NodeBulkFormTest.php
+++ b/core/modules/node/tests/src/Unit/Plugin/views/field/NodeBulkFormTest.php
@@ -62,7 +62,7 @@ class NodeBulkFormTest extends UnitTestCase {
     $container->set('views.views_data', $views_data);
     \Drupal::setContainer($container);
 
-    $storage = $this->getMock('Drupal\views\ViewStorageInterface');
+    $storage = $this->getMock('Drupal\views\ViewInterface');
     $storage->expects($this->any())
       ->method('get')
       ->with('base_table')
diff --git a/core/modules/user/src/Tests/Views/AccessRoleTest.php b/core/modules/user/src/Tests/Views/AccessRoleTest.php
index 6abbdba..38f029b 100644
--- a/core/modules/user/src/Tests/Views/AccessRoleTest.php
+++ b/core/modules/user/src/Tests/Views/AccessRoleTest.php
@@ -9,7 +9,7 @@
 
 use Drupal\user\Plugin\views\access\Role;
 use Drupal\views\Views;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -31,7 +31,7 @@ class AccessRoleTest extends AccessTestBase {
    * Tests role access plugin.
    */
   function testAccessRole() {
-    /** @var \Drupal\views\ViewStorageInterface $view */
+    /** @var \Drupal\views\ViewInterface $view */
     $view = \Drupal::entityManager()->getStorage('view')->load('test_access_role');
     $display = &$view->getDisplay('default');
     $display['display_options']['access']['options']['role'] = array(
diff --git a/core/modules/user/tests/src/Unit/Plugin/views/field/UserBulkFormTest.php b/core/modules/user/tests/src/Unit/Plugin/views/field/UserBulkFormTest.php
index 0e0b44e..00a4000 100644
--- a/core/modules/user/tests/src/Unit/Plugin/views/field/UserBulkFormTest.php
+++ b/core/modules/user/tests/src/Unit/Plugin/views/field/UserBulkFormTest.php
@@ -62,7 +62,7 @@ class UserBulkFormTest extends UnitTestCase {
     $container->set('views.views_data', $views_data);
     \Drupal::setContainer($container);
 
-    $storage = $this->getMock('Drupal\views\ViewStorageInterface');
+    $storage = $this->getMock('Drupal\views\ViewInterface');
     $storage->expects($this->any())
       ->method('get')
       ->with('base_table')
diff --git a/core/modules/views/src/Entity/View.php b/core/modules/views/src/Entity/View.php
index c3690ed..fd658ef 100644
--- a/core/modules/views/src/Entity/View.php
+++ b/core/modules/views/src/Entity/View.php
@@ -11,8 +11,7 @@
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\views\Views;
-use Drupal\views_ui\ViewUI;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 
 /**
  * Defines a View configuration entity class.
@@ -31,7 +30,7 @@
  *   }
  * )
  */
-class View extends ConfigEntityBase implements ViewStorageInterface {
+class View extends ConfigEntityBase implements ViewInterface {
 
   /**
    * The name of the base table this view will use.
@@ -72,7 +71,7 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
   /**
    * The core version the view was created for.
    *
-   * @var int
+   * @var string
    */
   protected $core = \Drupal::CORE_COMPATIBILITY;
 
@@ -123,7 +122,7 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
   }
 
   /**
-   * Overrides Drupal\Core\Config\Entity\ConfigEntityBase::createDuplicate().
+   * {@inheritdoc}
    */
   public function createDuplicate() {
     $duplicate = parent::createDuplicate();
@@ -132,9 +131,7 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
   }
 
   /**
-   * Overrides \Drupal\Core\Entity\Entity::label().
-   *
-   * When a certain view doesn't have a label return the ID.
+   * {@inheritdoc}
    */
   public function label() {
     if (!$label = $this->get('label')) {
@@ -144,20 +141,7 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
   }
 
   /**
-   * Adds a new display handler to the view, automatically creating an ID.
-   *
-   * @param string $plugin_id
-   *   (optional) The plugin type from the Views plugin annotation. Defaults to
-   *   'page'.
-   * @param string $title
-   *   (optional) The title of the display. Defaults to NULL.
-   * @param string $id
-   *   (optional) The ID to use, e.g., 'default', 'page_1', 'block_2'. Defaults
-   *   to NULL.
-   *
-   * @return string|false
-   *   The key to the display in $view->display, or FALSE if no plugin ID was
-   *   provided.
+   * {@inheritdoc}
    */
   public function addDisplay($plugin_id = 'page', $title = NULL, $id = NULL) {
     if (empty($plugin_id)) {
@@ -213,6 +197,8 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
    *
    * @param string $plugin_id
    *   Which plugin should be used for the new display ID.
+   *
+   * @return string
    */
   protected function generateDisplayId($plugin_id) {
     // 'default' is singular and is unique, so just go with 'default'
@@ -420,7 +406,7 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
     parent::preDelete($storage, $entities);
 
     // Call the remove() hook on the individual displays.
-    /** @var \Drupal\views\ViewStorageInterface $entity */
+    /** @var \Drupal\views\ViewInterface $entity */
     foreach ($entities as $entity) {
       $executable = Views::executableFactory()->get($entity);
       foreach ($entity->get('display') as $display_id => $display) {
@@ -461,4 +447,46 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
     $this->set('display', $displays);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getBaseTableName() {
+    return $this->base_table;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getBaseFieldName() {
+    return $this->base_field;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return $this->description;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getTags() {
+    return $this->tag;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCoreVersion() {
+    return $this->core;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getModuleName() {
+    return $this->module;
+  }
+
 }
diff --git a/core/modules/views/src/Plugin/views/wizard/WizardInterface.php b/core/modules/views/src/Plugin/views/wizard/WizardInterface.php
index 893afee..115d196 100644
--- a/core/modules/views/src/Plugin/views/wizard/WizardInterface.php
+++ b/core/modules/views/src/Plugin/views/wizard/WizardInterface.php
@@ -54,7 +54,7 @@
    * @param \Drupal\Core\Form\FormStateInterface $form_state
    *   The current state of the wizard form.
    *
-   * @return \Drupal\views\ViewStorageInterface
+   * @return \Drupal\views\ViewInterface
    *   The created view object.
    *
    * @throws \Drupal\views\Plugin\views\wizard\WizardException
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index 0ca31da..69c5a22 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\views\Plugin\views\query\QueryPluginBase;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\Component\Utility\Tags;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -427,14 +427,14 @@ class ViewExecutable {
   /**
    * Constructs a new ViewExecutable object.
    *
-   * @param \Drupal\views\ViewStorageInterface $storage
+   * @param \Drupal\views\ViewInterface $storage
    *   The view config entity the actual information is stored on.
    * @param \Drupal\Core\Session\AccountInterface $user
    *   The current user.
    * @param \Drupal\views\ViewsData $views_data
    *   The views data.
    */
-  public function __construct(ViewStorageInterface $storage, AccountInterface $user, ViewsData $views_data) {
+  public function __construct(ViewInterface $storage, AccountInterface $user, ViewsData $views_data) {
     // Reference the storage and the executable to each other.
     $this->storage = $storage;
     $this->storage->set('executable', $this);
diff --git a/core/modules/views/src/ViewExecutableFactory.php b/core/modules/views/src/ViewExecutableFactory.php
index ed6bdd0..5843bd8 100644
--- a/core/modules/views/src/ViewExecutableFactory.php
+++ b/core/modules/views/src/ViewExecutableFactory.php
@@ -8,7 +8,7 @@
 namespace Drupal\views;
 
 use Drupal\Core\Session\AccountInterface;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
@@ -56,13 +56,13 @@ class ViewExecutableFactory {
   /**
    * Instantiates a ViewExecutable class.
    *
-   * @param \Drupal\views\ViewStorageInterface $view
+   * @param \Drupal\views\ViewInterface $view
    *   A view entity instance.
    *
    * @return \Drupal\views\ViewExecutable
    *   A ViewExecutable instance.
    */
-  public function get(ViewStorageInterface $view) {
+  public function get(ViewInterface $view) {
     $view = new ViewExecutable($view, $this->user, $this->viewsData);
     $view->setRequest($this->requestStack->getCurrentRequest());
     return $view;
diff --git a/core/modules/views/src/ViewStorageInterface.php b/core/modules/views/src/ViewInterface.php
similarity index 62%
rename from core/modules/views/src/ViewStorageInterface.php
rename to core/modules/views/src/ViewInterface.php
index d894452..df3d8f2 100644
--- a/core/modules/views/src/ViewStorageInterface.php
+++ b/core/modules/views/src/ViewInterface.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Definition of Drupal\views\ViewStorageInterface.
+ * Definition of Drupal\views\ViewInterface.
  */
 
 namespace Drupal\views;
@@ -12,7 +12,7 @@
 /**
  * Defines an interface for View storage classes.
  */
-interface ViewStorageInterface extends ConfigEntityInterface {
+interface ViewInterface extends ConfigEntityInterface {
 
   /**
    * Gets an executable instance for this view.
@@ -53,4 +53,23 @@
    */
   public function duplicateDisplayAsType($old_display_id, $new_display_type);
 
+  /**
+   * Adds a new display handler to the view, automatically creating an ID.
+   *
+   * @param string $plugin_id
+   *   (optional) The plugin type from the Views plugin annotation. Defaults to
+   *   'page'.
+   * @param string $title
+   *   (optional) The title of the display. Defaults to NULL.
+   * @param string $id
+   *   (optional) The ID to use, e.g., 'default', 'page_1', 'block_2'. Defaults
+   *   to NULL.
+   *
+   * @return string|bool
+   *   The key to the display in $view->display, or FALSE if no plugin ID was
+   *   provided.
+   */
+  public function addDisplay($plugin_id = 'page', $title = NULL, $id = NULL);
+
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
index d3ceb3b..a2eacc1 100644
--- a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
+++ b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
@@ -7,7 +7,7 @@
 
 use Drupal\field\FieldStorageConfigInterface;
 use Drupal\views\ViewExecutable;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 
 /**
  * Implements hook_views_query_substitutions().
diff --git a/core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php b/core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php
index 2c03f23..d05b6c5 100644
--- a/core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php
@@ -39,7 +39,7 @@ class ViewsBlockTest extends UnitTestCase {
   /**
    * The view entity.
    *
-   * @var \Drupal\views\ViewStorageInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\views\ViewInterface|\PHPUnit_Framework_MockObject_MockObject
    */
   protected $view;
 
diff --git a/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php b/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
index 7657fcd..f974bff 100644
--- a/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
+++ b/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
@@ -58,7 +58,7 @@ class ViewPageControllerTest extends UnitTestCase {
    * Tests the page controller.
    */
   public function testPageController() {
-    $view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $view = $this->getMock('Drupal\views\ViewInterface');
 
     $this->storage->expects($this->once())
       ->method('load')
@@ -112,7 +112,7 @@ class ViewPageControllerTest extends UnitTestCase {
    * Tests the page controller with arguments on a non overridden page view.
    */
   public function testHandleWithArgumentsWithoutOverridden() {
-    $view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $view = $this->getMock('Drupal\views\ViewInterface');
 
     $this->storage->expects($this->once())
       ->method('load')
@@ -168,7 +168,7 @@ class ViewPageControllerTest extends UnitTestCase {
    * Note: This test does not care about upcasting for now.
    */
   public function testHandleWithArgumentsOnOveriddenRoute() {
-    $view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $view = $this->getMock('Drupal\views\ViewInterface');
 
     $this->storage->expects($this->once())
       ->method('load')
@@ -227,7 +227,7 @@ class ViewPageControllerTest extends UnitTestCase {
    * are pulled in.
    */
   public function testHandleWithArgumentsOnOveriddenRouteWithUpcasting() {
-    $view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $view = $this->getMock('Drupal\views\ViewInterface');
 
     $this->storage->expects($this->once())
       ->method('load')
diff --git a/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php b/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php
index 730dd37..74d1a2a 100644
--- a/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php
+++ b/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php
@@ -61,7 +61,7 @@ class ViewExecutableFactoryTest extends UnitTestCase {
 
     $this->user = $this->getMock('Drupal\Core\Session\AccountInterface');
     $this->requestStack = new RequestStack();
-    $this->view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $this->view = $this->getMock('Drupal\views\ViewInterface');
     $this->viewsData = $this->getMockBuilder('Drupal\views\ViewsData')
       ->disableOriginalConstructor()
       ->getMock();
diff --git a/core/modules/views_ui/src/Controller/ViewsUIController.php b/core/modules/views_ui/src/Controller/ViewsUIController.php
index 0cfc3dc..25c9ac0 100644
--- a/core/modules/views_ui/src/Controller/ViewsUIController.php
+++ b/core/modules/views_ui/src/Controller/ViewsUIController.php
@@ -12,8 +12,7 @@
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Url;
 use Drupal\views\ViewExecutable;
-use Drupal\views\ViewStorageInterface;
-use Drupal\views\Views;
+use Drupal\views\ViewInterface;
 use Drupal\views_ui\ViewUI;
 use Drupal\views\ViewsData;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -138,7 +137,7 @@ class ViewsUIController extends ControllerBase {
   /**
    * Calls a method on a view and reloads the listing page.
    *
-   * @param \Drupal\views\ViewStorageInterface $view
+   * @param \Drupal\views\ViewInterface $view
    *   The view being acted upon.
    * @param string $op
    *   The operation to perform, e.g., 'enable' or 'disable'.
@@ -150,7 +149,7 @@ class ViewsUIController extends ControllerBase {
    *   back to the listing page.
    *
    */
-  public function ajaxOperation(ViewStorageInterface $view, $op, Request $request) {
+  public function ajaxOperation(ViewInterface $view, $op, Request $request) {
     // Perform the operation.
     $view->$op()->save();
 
diff --git a/core/modules/views_ui/src/Form/Ajax/AddHandler.php b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
index afcfa43..a313ded 100644
--- a/core/modules/views_ui/src/Form/Ajax/AddHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\views\ViewExecutable;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views\Views;
 
 /**
@@ -34,7 +34,7 @@ class AddHandler extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL) {
     $this->setType($type);
     return parent::getForm($view, $display_id, $js);
   }
diff --git a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
index 3f0ee62..1089483 100644
--- a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Url;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Views;
 use Symfony\Component\HttpFoundation\Request;
@@ -37,7 +37,7 @@ class ConfigHandler extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
     $this->setType($type);
     $this->setID($id);
     return parent::getForm($view, $display_id, $js);
diff --git a/core/modules/views_ui/src/Form/Ajax/ConfigHandlerExtra.php b/core/modules/views_ui/src/Form/Ajax/ConfigHandlerExtra.php
index 3cdaece..a49aed7 100644
--- a/core/modules/views_ui/src/Form/Ajax/ConfigHandlerExtra.php
+++ b/core/modules/views_ui/src/Form/Ajax/ConfigHandlerExtra.php
@@ -8,7 +8,7 @@
 namespace Drupal\views_ui\Form\Ajax;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views\ViewExecutable;
 
 /**
@@ -34,7 +34,7 @@ class ConfigHandlerExtra extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
     $this->setType($type);
     $this->setID($id);
     return parent::getForm($view, $display_id, $js);
diff --git a/core/modules/views_ui/src/Form/Ajax/ConfigHandlerGroup.php b/core/modules/views_ui/src/Form/Ajax/ConfigHandlerGroup.php
index 3cc63f5..d9631ee 100644
--- a/core/modules/views_ui/src/Form/Ajax/ConfigHandlerGroup.php
+++ b/core/modules/views_ui/src/Form/Ajax/ConfigHandlerGroup.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\views\Views;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views\ViewExecutable;
 
 /**
@@ -35,7 +35,7 @@ class ConfigHandlerGroup extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL, $id = NULL) {
     $this->setType($type);
     $this->setID($id);
     return parent::getForm($view, $display_id, $js);
diff --git a/core/modules/views_ui/src/Form/Ajax/Display.php b/core/modules/views_ui/src/Form/Ajax/Display.php
index 307fda4..b3c296f 100644
--- a/core/modules/views_ui/src/Form/Ajax/Display.php
+++ b/core/modules/views_ui/src/Form/Ajax/Display.php
@@ -8,7 +8,7 @@
 namespace Drupal\views_ui\Form\Ajax;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 
 /**
  * Provides a form for editing the Views display.
@@ -35,7 +35,7 @@ class Display extends ViewsFormBase {
    * @todo Remove this and switch all usage of $form_state->get('section') to
    *   $form_state->get('type').
    */
-  public function getFormState(ViewStorageInterface $view, $display_id, $js) {
+  public function getFormState(ViewInterface $view, $display_id, $js) {
     $form_state = parent::getFormState($view, $display_id, $js);
     $form_state->set('section', $this->type);
     return $form_state;
@@ -44,7 +44,7 @@ class Display extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL) {
     $this->setType($type);
     return parent::getForm($view, $display_id, $js);
   }
diff --git a/core/modules/views_ui/src/Form/Ajax/Rearrange.php b/core/modules/views_ui/src/Form/Ajax/Rearrange.php
index cff75fd..786bc27 100644
--- a/core/modules/views_ui/src/Form/Ajax/Rearrange.php
+++ b/core/modules/views_ui/src/Form/Ajax/Rearrange.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Url;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views\ViewExecutable;
 
 /**
@@ -34,7 +34,7 @@ class Rearrange extends ViewsFormBase {
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js, $type = NULL) {
+  public function getForm(ViewInterface $view, $display_id, $js, $type = NULL) {
     $this->setType($type);
     return parent::getForm($view, $display_id, $js);
   }
diff --git a/core/modules/views_ui/src/Form/Ajax/ReorderDisplays.php b/core/modules/views_ui/src/Form/Ajax/ReorderDisplays.php
index 72dae7c..6da06d9 100644
--- a/core/modules/views_ui/src/Form/Ajax/ReorderDisplays.php
+++ b/core/modules/views_ui/src/Form/Ajax/ReorderDisplays.php
@@ -34,7 +34,7 @@ class ReorderDisplays extends ViewsFormBase {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    /** @var $view \Drupal\views\ViewStorageInterface */
+    /** @var $view \Drupal\views\ViewInterface */
     $view = $form_state->get('view');
     $display_id = $form_state->get('display_id');
 
diff --git a/core/modules/views_ui/src/Form/Ajax/ViewsFormBase.php b/core/modules/views_ui/src/Form/Ajax/ViewsFormBase.php
index e265ce7..a712aec 100644
--- a/core/modules/views_ui/src/Form/Ajax/ViewsFormBase.php
+++ b/core/modules/views_ui/src/Form/Ajax/ViewsFormBase.php
@@ -11,7 +11,8 @@
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views_ui\ViewUI;
+use Drupal\views\ViewInterface;
 use Drupal\views\Ajax;
 use Drupal\Core\Ajax\AjaxResponse;
 use Drupal\Core\Ajax\CloseModalDialogCommand;
@@ -63,7 +64,7 @@
   /**
    * {@inheritdoc}
    */
-  public function getFormState(ViewStorageInterface $view, $display_id, $js) {
+  public function getFormState(ViewInterface $view, $display_id, $js) {
     // $js may already have been converted to a Boolean.
     $ajax = is_string($js) ? $js === 'ajax' : $js;
     return (new FormState())
@@ -81,7 +82,7 @@
   /**
    * {@inheritdoc}
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js) {
+  public function getForm(ViewInterface $view, $display_id, $js) {
     $form_state = $this->getFormState($view, $display_id, $js);
     $view = $form_state->get('view');
     $key = $form_state->get('form_key');
diff --git a/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php b/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
index 8bc8adf..88197ca 100644
--- a/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
+++ b/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
@@ -8,7 +8,7 @@
 namespace Drupal\views_ui\Form\Ajax;
 
 use Drupal\Core\Form\FormInterface;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 
 interface ViewsFormInterface extends FormInterface {
 
@@ -24,7 +24,7 @@
   /**
    * Gets the form state for this form.
    *
-   * @param \Drupal\views\ViewStorageInterface $view
+   * @param \Drupal\views\ViewInterface $view
    *   The view being edited.
    * @param string|null $display_id
    *   The display ID being edited, or NULL to load the first available display.
@@ -35,12 +35,12 @@
    * @return \Drupal\Core\Form\FormStateInterface
    *   The current state of the form.
    */
-  public function getFormState(ViewStorageInterface $view, $display_id, $js);
+  public function getFormState(ViewInterface $view, $display_id, $js);
 
   /**
    * Creates a new instance of this form.
    *
-   * @param \Drupal\views\ViewStorageInterface $view
+   * @param \Drupal\views\ViewInterface $view
    *   The view being edited.
    * @param string|null $display_id
    *   The display ID being edited, or NULL to load the first available display.
@@ -55,6 +55,6 @@
    * @todo When http://drupal.org/node/1843224 is in, this will return
    *   \Drupal\Core\Ajax\AjaxResponse instead of the array of AJAX commands.
    */
-  public function getForm(ViewStorageInterface $view, $display_id, $js);
+  public function getForm(ViewInterface $view, $display_id, $js);
 
 }
diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php
index 1ef346b..9efce71 100644
--- a/core/modules/views_ui/src/ViewEditForm.php
+++ b/core/modules/views_ui/src/ViewEditForm.php
@@ -856,7 +856,7 @@ class ViewEditForm extends ViewFormBase {
    * Submit handler to Duplicate a display as another display type.
    */
   public function submitDuplicateDisplayAsType($form, FormStateInterface $form_state) {
-    /** @var \Drupal\views\ViewStorageInterface $view */
+    /** @var \Drupal\views\ViewInterface $view */
     $view = $this->entity;
     $display_id = $this->displayID;
 
diff --git a/core/modules/views_ui/src/ViewUI.php b/core/modules/views_ui/src/ViewUI.php
index 58a1734..158dcca 100644
--- a/core/modules/views_ui/src/ViewUI.php
+++ b/core/modules/views_ui/src/ViewUI.php
@@ -21,7 +21,7 @@
 use Drupal\Core\Session\AccountInterface;
 use Drupal\views\Plugin\views\query\Sql;
 use Drupal\views\Entity\View;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\ParameterBag;
 use Symfony\Component\HttpFoundation\Request;
@@ -29,7 +29,7 @@
 /**
  * Stores UI related temporary settings.
  */
-class ViewUI implements ViewStorageInterface {
+class ViewUI implements ViewInterface {
 
   /**
    * Indicates if a view is currently being edited.
@@ -109,7 +109,7 @@ class ViewUI implements ViewStorageInterface {
   /**
    * The View storage object.
    *
-   * @var \Drupal\views\ViewStorageInterface
+   * @var \Drupal\views\ViewInterface
    */
   protected $storage;
 
@@ -165,10 +165,10 @@ class ViewUI implements ViewStorageInterface {
   /**
    * Constructs a View UI object.
    *
-   * @param \Drupal\views\ViewStorageInterface $storage
+   * @param \Drupal\views\ViewInterface $storage
    *   The View storage object to wrap.
    */
-  public function __construct(ViewStorageInterface $storage, ViewExecutable $executable = NULL) {
+  public function __construct(ViewInterface $storage, ViewExecutable $executable = NULL) {
     $this->entityType = 'view';
     $this->storage = $storage;
     if (!isset($executable)) {
@@ -1168,4 +1168,17 @@ class ViewUI implements ViewStorageInterface {
     $this->storage->getTypedData();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function addDisplay($plugin_id = 'page', $title = NULL, $id = NULL) {
+    return $this->storage->addDisplay($plugin_id, $title, $id);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getViewExecutable() {
+    return $this->storage->getViewExecutable();
+  }
 }
diff --git a/core/modules/views_ui/views_ui.module b/core/modules/views_ui/views_ui.module
index 7bf6e71..916104b 100644
--- a/core/modules/views_ui/views_ui.module
+++ b/core/modules/views_ui/views_ui.module
@@ -10,7 +10,7 @@
 use Drupal\Core\Url;
 use Drupal\views\Views;
 use Drupal\views\ViewExecutable;
-use Drupal\views\ViewStorageInterface;
+use Drupal\views\ViewInterface;
 use Drupal\views_ui\ViewUI;
 use Drupal\views\Analyzer;
 use Drupal\Core\Ajax\AjaxResponse;
