Would it be ok if I add Storage interface methods into AbstractStorage as abstract methods.
Like: abstract StorageWriter getStorageWriter() throws IOException;

Then implementor like DelimitedTextStorage would not directly implement Storage anymore.

This is something what I thought a while back, but didn't do it yet because there's going to be more higher level abstract classes on top of AbstractStorage when we introduce functionality for FileNamingPolicy and RolloverPolicy strategy interfaces.