public static VersionedBytesStoreSupplier persistentVersionedKeyValueStore(final String name,
                                                                               final Duration historyRetention) {
        Objects.requireNonNull(name, "name cannot be null");
        final String hrMsgPrefix = prepareMillisCheckFailMsgPrefix(historyRetention, "historyRetention");
        final long historyRetentionMs = validateMillisecondDuration(historyRetention, hrMsgPrefix);
        if (historyRetentionMs < 0L) {
            throw new IllegalArgumentException("historyRetention cannot be negative");
        }
        return new RocksDbVersionedKeyValueBytesStoreSupplier(name, historyRetentionMs);
    }
@Test
    public void shouldThrowIfPersistentVersionedKeyValueStoreStoreNameIsNull() {
        Exception e = assertThrows(NullPointerException.class, () -> Stores.persistentVersionedKeyValueStore(null, ZERO));
        assertEquals("name cannot be null", e.getMessage());

        e = assertThrows(NullPointerException.class, () -> Stores.persistentVersionedKeyValueStore(null, ZERO, ofMillis(1)));
        assertEquals("name cannot be null", e.getMessage());
    }