@Override
    public boolean differentiate(@NotNull Map<Key, Value> newData,
                                 @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> addProcessor,
                                 @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> updateProcessor,
                                 @NotNull RemovedKeyProcessor<? super Key> removeProcessor) throws StorageException {
      for (Key key : myKeys) {
        removeProcessor.process(key, myInputId);
      }
      boolean anyAdded = EmptyInputDataDiffBuilder.processAllKeyValuesAsAdded(myInputId, newData, addProcessor);
      boolean anyRemoved = !myKeys.isEmpty();
      return anyAdded || anyRemoved;
    }
@Override
    public boolean differentiate(@NotNull Map<Key, Value> newData,
                                 @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> addProcessor,
                                 @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> updateProcessor,
                                 @NotNull RemovedKeyProcessor<? super Key> removeProcessor)