diff --git a/estnltk/storage/postgres/storage.py b/estnltk/storage/postgres/storage.py
index <HASH>..<HASH> 100644
--- a/estnltk/storage/postgres/storage.py
+++ b/estnltk/storage/postgres/storage.py
@@ -79,6 +79,8 @@ class PostgresStorage:
 
     @property
     def collections(self):
+        if not self._loaded:
+            self._load()
         return sorted(self._collections)
 
     def __getitem__(self, name: str):
diff --git a/estnltk/storage/postgres/tests/test_.py b/estnltk/storage/postgres/tests/test_.py
index <HASH>..<HASH> 100755
--- a/estnltk/storage/postgres/tests/test_.py
+++ b/estnltk/storage/postgres/tests/test_.py
@@ -44,6 +44,11 @@ class TestPgCollection(unittest.TestCase):
         delete_schema(self.storage)
         self.storage.close()
 
+    def test_storage_get_collections(self):
+        # Test that the collections list can be accessed
+        # even before it is filled in with collections 
+        self.assertTrue( len( self.storage.collections ) == 0 )
+
     def test_create_collection(self):
         collection_name = get_random_collection_name()
         collection = self.storage[collection_name]
Fix in storage.collections: a list of collections can be accessed even if it is empty