diff --git a/src/main/java/caosdb/server/database/BackendTransaction.java b/src/main/java/caosdb/server/database/BackendTransaction.java
index b1b4359ba404ced1de0a5bfa91ae8f27b3c38919..55987005d2c8c76f432cb12065f45b598075ec9c 100644
--- a/src/main/java/caosdb/server/database/BackendTransaction.java
+++ b/src/main/java/caosdb/server/database/BackendTransaction.java
@@ -50,7 +50,6 @@ import caosdb.server.database.backend.implementation.MySQL.MySQLRegisterSubDomai
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAll;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAllUncheckedFiles;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveDatatypes;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveFullVersion;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveLogRecord;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveParents;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrievePasswordValidator;
@@ -61,6 +60,7 @@ import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveRole;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveSparseEntity;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveTransactionHistory;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveUser;
+import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveVersionHistory;
 import caosdb.server.database.backend.implementation.MySQL.MySQLRuleLoader;
 import caosdb.server.database.backend.implementation.MySQL.MySQLSetFileCheckedTimestampImpl;
 import caosdb.server.database.backend.implementation.MySQL.MySQLSetPassword;
@@ -106,7 +106,6 @@ import caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
 import caosdb.server.database.backend.interfaces.RetrieveAllImpl;
 import caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
 import caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveFullVersionInfoImpl;
 import caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
 import caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
 import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
@@ -117,6 +116,7 @@ import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
 import caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
 import caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
 import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
 import caosdb.server.database.backend.interfaces.RuleLoaderImpl;
 import caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
 import caosdb.server.database.backend.interfaces.SetPasswordImpl;
@@ -208,7 +208,7 @@ public abstract class BackendTransaction implements Undoable {
       setImpl(
           RetrieveQueryTemplateDefinitionImpl.class, MySQLRetrieveQueryTemplateDefinition.class);
       setImpl(InsertEntityDatatypeImpl.class, MySQLInsertEntityDatatype.class);
-      setImpl(RetrieveFullVersionInfoImpl.class, MySQLRetrieveFullVersion.class);
+      setImpl(RetrieveVersionHistoryImpl.class, MySQLRetrieveVersionHistory.class);
     }
   }
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveFullVersion.java b/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
similarity index 57%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveFullVersion.java
rename to src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
index db28b8c21720bda2a1621eb7a7a121ba81dbcb1c..22ac0c2e30c0f48fbc884f40593bac2dc45d7b7d 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveFullVersion.java
+++ b/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
@@ -1,8 +1,30 @@
+/*
+ * ** header v3.0
+ * This file is a part of the CaosDB Project.
+ *
+ * Copyright (C) 2020 IndiScale GmbH <info@indiscale.com>
+ * Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * ** end header
+ */
 package caosdb.server.database.backend.implementation.MySQL;
 
 import caosdb.server.database.DatabaseUtils;
 import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveFullVersionInfoImpl;
+import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
 import caosdb.server.database.exceptions.TransactionException;
 import caosdb.server.database.proto.VersionHistoryItem;
 import java.sql.PreparedStatement;
@@ -11,12 +33,17 @@ import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.LinkedList;
 
-public class MySQLRetrieveFullVersion extends MySQLTransaction
-    implements RetrieveFullVersionInfoImpl {
+/**
+ * Transaction to retrieve all versions of an entity.
+ *
+ * <p>Creates a mapping ID :: (VersionHistoryItem)
+ */
+public class MySQLRetrieveVersionHistory extends MySQLTransaction
+    implements RetrieveVersionHistoryImpl {
 
   public static final String VERSION_HISTORY_STMT = "CALL get_version_history(?)";
 
-  public MySQLRetrieveFullVersion(Access access) {
+  public MySQLRetrieveVersionHistory(Access access) {
     super(access);
   }
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveFullVersionInfoImpl.java b/src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
similarity index 72%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveFullVersionInfoImpl.java
rename to src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
index a6201cec61c889d79f53dd23595e0d4a501bc8de..118e783d816ce45d1a43738bf8959e4a94740d3c 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveFullVersionInfoImpl.java
+++ b/src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
@@ -3,7 +3,7 @@ package caosdb.server.database.backend.interfaces;
 import caosdb.server.database.proto.VersionHistoryItem;
 import java.util.HashMap;
 
-public interface RetrieveFullVersionInfoImpl extends BackendTransactionImpl {
+public interface RetrieveVersionHistoryImpl extends BackendTransactionImpl {
 
   public HashMap<String, VersionHistoryItem> execute(Integer entityId);
 }
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveFullVersionHistory.java b/src/main/java/caosdb/server/database/backend/transaction/RetrieveFullVersionHistory.java
deleted file mode 100644
index 5c61811e5fcaf5e3c9986b11cae486d71a8da8aa..0000000000000000000000000000000000000000
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveFullVersionHistory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package caosdb.server.database.backend.transaction;
-
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveFullVersionInfoImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VersionHistoryItem;
-import caosdb.server.entity.EntityInterface;
-import java.util.Collection;
-import java.util.HashMap;
-
-public abstract class RetrieveFullVersionHistory
-    extends CacheableBackendTransaction<Integer, HashMap<String, VersionHistoryItem>> {
-
-  // TODO
-  // private static final ICacheAccess<String, Version> cache =
-  // Cache.getCache("BACKEND_RetrieveFullVersionInfo");
-  private EntityInterface entity;
-  private HashMap<String, VersionHistoryItem> map;
-
-  public static void removeCached(Integer entityId) {
-    // TODO
-  }
-
-  public RetrieveFullVersionHistory(EntityInterface e) {
-    super(null); // TODO
-    this.entity = e;
-  }
-
-  @Override
-  public HashMap<String, VersionHistoryItem> executeNoCache() throws TransactionException {
-    RetrieveFullVersionInfoImpl impl = getImplementation(RetrieveFullVersionInfoImpl.class);
-    return impl.execute(getKey());
-  }
-
-  @Override
-  protected void process(HashMap<String, VersionHistoryItem> map) throws TransactionException {
-    this.map = map;
-  }
-
-  @Override
-  protected Integer getKey() {
-    return entity.getId();
-  }
-
-  public HashMap<String, VersionHistoryItem> getMap() {
-    return this.map;
-  }
-
-  public EntityInterface getEntity() {
-    return this.entity;
-  }
-
-  public Collection<VersionHistoryItem> getList() {
-    return this.map.values();
-  }
-}
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java b/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
new file mode 100644
index 0000000000000000000000000000000000000000..20be2f8fb60ce54877fdb2fd85d27a6944a71d86
--- /dev/null
+++ b/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
@@ -0,0 +1,79 @@
+/*
+ * ** header v3.0
+ * This file is a part of the CaosDB Project.
+ *
+ * Copyright (C) 2020 IndiScale GmbH <info@indiscale.com>
+ * Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * ** end header
+ */
+package caosdb.server.database.backend.transaction;
+
+import caosdb.server.database.CacheableBackendTransaction;
+import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
+import caosdb.server.database.exceptions.TransactionException;
+import caosdb.server.database.proto.VersionHistoryItem;
+import caosdb.server.entity.EntityInterface;
+import java.util.Collection;
+import java.util.HashMap;
+
+public abstract class RetrieveVersionHistory
+    extends CacheableBackendTransaction<Integer, HashMap<String, VersionHistoryItem>> {
+
+  // TODO
+  // private static final ICacheAccess<String, Version> cache =
+  // Cache.getCache("BACKEND_RetrieveVersionHistory");
+  private EntityInterface entity;
+  private HashMap<String, VersionHistoryItem> map;
+
+  public static void removeCached(Integer entityId) {
+    // TODO
+  }
+
+  public RetrieveVersionHistory(EntityInterface e) {
+    super(null); // TODO caching
+    this.entity = e;
+  }
+
+  @Override
+  public HashMap<String, VersionHistoryItem> executeNoCache() throws TransactionException {
+    RetrieveVersionHistoryImpl impl = getImplementation(RetrieveVersionHistoryImpl.class);
+    return impl.execute(getKey());
+  }
+
+  /** After this method call, the version map is available to the object. */
+  @Override
+  protected void process(HashMap<String, VersionHistoryItem> map) throws TransactionException {
+    this.map = map;
+  }
+
+  @Override
+  protected Integer getKey() {
+    return entity.getId();
+  }
+
+  public HashMap<String, VersionHistoryItem> getMap() {
+    return this.map;
+  }
+
+  public EntityInterface getEntity() {
+    return this.entity;
+  }
+
+  public Collection<VersionHistoryItem> getList() {
+    return this.map.values();
+  }
+}
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java b/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
index b0bec81a8ff9b3724120b5d9a6570a5e8f489f9d..77f282d08e2b054f079013a1dd47d112592fa16e 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
+++ b/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
@@ -30,7 +30,7 @@ import caosdb.server.entity.Version;
 import java.util.HashMap;
 import java.util.LinkedList;
 
-public class RetrieveVersionInfo extends RetrieveFullVersionHistory {
+public class RetrieveVersionInfo extends RetrieveVersionHistory {
 
   public RetrieveVersionInfo(EntityInterface e) {
     super(e);
diff --git a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
index 15256a00a941254a89978c7a7c0b693d66d52eda..97488a6ba2a7984d66bb94332b4d7df0f9478cfb 100644
--- a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
+++ b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
@@ -4,7 +4,8 @@
  *
  * Copyright (C) 2018 Research Group Biomedical Physics,
  * Max-Planck-Institute for Dynamics and Self-Organization Göttingen
- * Copyright (C) 2019 IndiScale GmbH
+ * Copyright (C) 2019,2020 IndiScale GmbH <info@indiscale.com>
+ * Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as