code: @VisibleForTesting
    /* package protected */ synchronized DiskStorage get() throws IOException {
      if (shouldCreateNewStorage()) {
        // discard anything we created
        deleteOldStorageIfNecessary();
        createStorage();
      }
      return Preconditions.checkNotNull(mCurrentState.delegate);
    }
docs: Gets a concrete disk-storage instance. If nothing has changed since the last call, then
  the last state is returned
  @return an instance of the appropriate DiskStorage class
  @throws IOException