diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/VersionedValue.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/VersionedValue.java
index 852fb07..ae6969c 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/VersionedValue.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/VersionedValue.java
@@ -38,6 +38,28 @@
         return version;
     }
 
+    /**
+     * Creates a copy of given VersionedValue.
+     *
+     * @param original VersionedValue to create a copy
+     * @return same as original if original or it's value is null,
+     *         otherwise creates a copy.
+     */
+    public static VersionedValue copy(VersionedValue original) {
+        if (original == null) {
+            return null;
+        }
+        if (original.value == null) {
+            // immutable, no need to copy
+            return original;
+        } else {
+            return new VersionedValue(
+                                      Arrays.copyOf(original.value,
+                                                    original.value.length),
+                                      original.version);
+        }
+    }
+
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(getClass())
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseStateMachine.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseStateMachine.java
index 6d8d5bd..d132b7c 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseStateMachine.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseStateMachine.java
@@ -76,7 +76,7 @@
                 results.add(new InternalReadResult(InternalReadResult.Status.NO_SUCH_TABLE, null));
                 continue;
             }
-            VersionedValue value = table.get(request.key());
+            VersionedValue value = VersionedValue.copy(table.get(request.key()));
             results.add(new InternalReadResult(
                     InternalReadResult.Status.OK,
                     new ReadResult(
