diff --git a/synapse/storage/group_server.py b/synapse/storage/group_server.py
index f44e80b51455a459173ee095c9ba392e2c63fefe..792a57deb59d4ed872755dbf77396c1c19c70df8 100644
--- a/synapse/storage/group_server.py
+++ b/synapse/storage/group_server.py
@@ -1101,7 +1101,13 @@ class GroupServerStore(SQLBaseStore):
                 LIMIT ?
             """
             txn.execute(sql, (from_token, to_token, limit,))
-            return txn.fetchall()
+            return [{
+                "stream_id": stream_id,
+                "group_id": group_id,
+                "user_id": user_id,
+                "type": gtype,
+                "content": json.loads(content_json),
+            } for stream_id, group_id, user_id, gtype, content_json in txn]
         return self.runInteraction(
             "get_all_groups_changes", _get_all_groups_changes_txn,
         )