docs: public BinaryKey moveValue( BinaryKey key,
                                  String source,
                                  String destination ) throws BinaryStoreException {
          final BinaryStore sourceStore;
  
          if (source == null) {
              sourceStore = findBinaryStoreContainingKey(key);
          } else {
              sourceStore = selectBinaryStore(source);
          }
  
          // could not find source store, or
          if (sourceStore == null || !sourceStore.hasBinary(key)) {
              throw new BinaryStoreException(JcrI18n.unableToFindBinaryValue.text(key, sourceStore));
          }
  
          BinaryStore destinationStore = selectBinaryStore(destination);
  
          // key is already in the destination store
          if (sourceStore.equals(destinationStore)) {
              return key;
          }
  
          final BinaryValue binaryValue = storeValue(sourceStore.getInputStream(key), destination, false);
          sourceStore.markAsUnused(java.util.Collections.singleton(key));
  
          return binaryValue.getKey();
      }