Nate's comments
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4222c42..4c6b7bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,7 +17,7 @@
 * Ensure `createHitmap` returns a sorted hitmap. This fixes a potential issue with
   ignore line annotations.
 * Use the `reportLines` flag in `vm_service`'s `getSourceReport` RPC. This
-  typiclly halves the number of RPCs that the coverage collector needs to run.
+  typically halves the number of RPCs that the coverage collector needs to run.
 
 ## 1.0.3 - 2021-05-25
 
diff --git a/lib/src/collect.dart b/lib/src/collect.dart
index 2343c04..841a7c5 100644
--- a/lib/src/collect.dart
+++ b/lib/src/collect.dart
@@ -97,8 +97,10 @@
   scopedOutput ??= <String>{};
   final vm = await service.getVM();
   final allCoverage = <Map<String, dynamic>>[];
-  final ver = await service.getVersion();
-  final reportLines = ver.major == 3 && ver.minor != null && ver.minor! >= 51;
+  final version = await service.getVersion();
+  final reportLines =
+      (version.major == 3 && version.minor != null && version.minor! >= 51) ||
+          (version.major != null && version.major! > 3);
 
   for (var isolateRef in vm.isolates!) {
     if (isolateIds != null && !isolateIds.contains(isolateRef.id)) continue;
diff --git a/test/collect_coverage_api_test.dart b/test/collect_coverage_api_test.dart
index 8e92eb5..3f82581 100644
--- a/test/collect_coverage_api_test.dart
+++ b/test/collect_coverage_api_test.dart
@@ -34,7 +34,7 @@
     });
 
     for (var sampleCoverageData in sources[_sampleAppFileUri]!) {
-      expect(sampleCoverageData['hits'], isNotNull);
+      expect(sampleCoverageData['hits'], isNotEmpty);
     }
 
     for (var sampleCoverageData in sources[_isolateLibFileUri]!) {
@@ -100,8 +100,8 @@
     });
 
     for (var sampleCoverageData in sources[_sampleAppFileUri]!) {
-      expect(sampleCoverageData['funcNames'], isNotNull);
-      expect(sampleCoverageData['funcHits'], isNotNull);
+      expect(sampleCoverageData['funcNames'], isNotEmpty);
+      expect(sampleCoverageData['funcHits'], isNotEmpty);
     }
 
     for (var sampleCoverageData in sources[_isolateLibFileUri]!) {