diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 49515fbcc5797c956cbae488774d5d41bb2c7dc9..4e116babd3f8d01b0f5869d6bd17ac70f215e12a 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -110,7 +110,7 @@ class Encryption extends Wrapper {
 			Manager $mountManager = null,
 			ArrayCache $arrayCache = null
 		) {
-		
+
 		$this->mountPoint = $parameters['mountPoint'];
 		$this->mount = $parameters['mount'];
 		$this->encryptionManager = $encryptionManager;
@@ -174,20 +174,25 @@ class Encryption extends Wrapper {
 			return null;
 		}
 		$fullPath = $this->getFullPath($path);
+		$info = $this->getCache()->get($path);
 
 		if (isset($this->unencryptedSize[$fullPath])) {
 			$data['encrypted'] = true;
 			$data['size'] = $this->unencryptedSize[$fullPath];
 		} else {
-			$info = $this->getCache()->get($path);
 			if (isset($info['fileid']) && $info['encrypted']) {
 				$data['size'] = $this->verifyUnencryptedSize($path, $info['size']);
 				$data['encrypted'] = true;
 			}
 		}
 
+		if (isset($info['encryptedVersion']) && $info['encryptedVersion'] > 1) {
+			$data['encryptedVersion'] = $info['encryptedVersion'];
+		}
+
 		return $data;
 	}
+
 	/**
 	 * see http://php.net/manual/en/function.file_get_contents.php
 	 *
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 9d68f3b14b2ef44fee3b1cb1bfece6016abe7c83..651299a3eaba3eb881e7cac8a31ae2ee65b0594b 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -260,25 +260,39 @@ class Encryption extends Storage {
 			$this->invokePrivate($this->instance, 'unencryptedSize', [[$path => $storedUnencryptedSize]]);
 		}
 
-
+		$fileEntry = $this->getMockBuilder('\OC\Files\Cache\Cache')
+			->disableOriginalConstructor()->getMock();
 		$sourceStorage->expects($this->once())->method('getMetaData')->with($path)
 			->willReturn($metaData);
+		$sourceStorage->expects($this->any())
+			->method('getCache')
+			->with($path)
+			->willReturn($fileEntry);
+		$fileEntry->expects($this->any())
+			->method('get')
+			->with($metaData['fileid']);
 
 		$this->instance->expects($this->any())->method('getCache')->willReturn($cache);
 		$this->instance->expects($this->any())->method('verifyUnencryptedSize')
 			->with($path, 0)->willReturn($expected['size']);
 
 		$result = $this->instance->getMetaData($path);
-		$this->assertSame($expected['encrypted'], $result['encrypted']);
+		if(isset($expected['encrypted'])) {
+			$this->assertSame($expected['encrypted'], (bool)$result['encrypted']);
+
+			if(isset($expected['encryptedVersion'])) {
+				$this->assertSame($expected['encryptedVersion'], $result['encryptedVersion']);
+			}
+		}
 		$this->assertSame($expected['size'], $result['size']);
 	}
 
 	public function dataTestGetMetaData() {
 		return [
-			['/test.txt', ['size' => 42, 'encrypted' => false], true, true, 12, ['size' => 12, 'encrypted' => true]],
+			['/test.txt', ['size' => 42, 'encrypted' => 2, 'encryptedVersion' => 2, 'fileid' => 1], true, true, 12, ['size' => 12, 'encrypted' => true, 'encryptedVersion' => 2]],
 			['/test.txt', null, true, true, 12, null],
-			['/test.txt', ['size' => 42, 'encrypted' => false], false, false, 12, ['size' => 42, 'encrypted' => false]],
-			['/test.txt', ['size' => 42, 'encrypted' => false], true, false, 12, ['size' => 12, 'encrypted' => true]]
+			['/test.txt', ['size' => 42, 'encrypted' => 0, 'fileid' => 1], false, false, 12, ['size' => 42, 'encrypted' => false]],
+			['/test.txt', ['size' => 42, 'encrypted' => false, 'fileid' => 1], true, false, 12, ['size' => 12, 'encrypted' => true]]
 		];
 	}