public void destroyView(GraphView view) {
    graphStore.autoWriteLock();
    try {
      checkNonNullViewObject(view);

      TimestampIndexStore nodeTimestampStore = graphStore.timestampStore.nodeIndexStore;
      if (nodeTimestampStore != null) {
        nodeTimestampStore.deleteViewIndex(((GraphViewImpl) view).getDirectedGraph());
      }

      TimestampIndexStore edgeTimestampStore = graphStore.timestampStore.edgeIndexStore;
      if (edgeTimestampStore != null) {
        edgeTimestampStore.deleteViewIndex(((GraphViewImpl) view).getDirectedGraph());
      }

      IndexStore<Node> nodeIndexStore = graphStore.nodeColumnStore.indexStore;
      if (nodeIndexStore != null) {
        nodeIndexStore.deleteViewIndex(((GraphViewImpl) view).getDirectedGraph());
      }

      IndexStore<Edge> edgeIndexStore = graphStore.edgeColumnStore.indexStore;
      if (edgeIndexStore != null) {
        edgeIndexStore.deleteViewIndex(((GraphViewImpl) view).getDirectedGraph());
      }

      removeView((GraphViewImpl) view);
    } finally {
      graphStore.autoWriteUnlock();
    }
  }