async loadFlexData(mPropertyBag) {
			const aFlexObjects = await loadDataFromStorage({
				storage: this.storage,
				reference: mPropertyBag.reference
			});

			const aVersionChain = await this.versions.getVersionChain.call(this, mPropertyBag, mPropertyBag.version);
			const aFilteredFlexObjects = aFlexObjects.filter((oFlexObject) =>
				oFlexObject.version === undefined || aVersionChain.includes(oFlexObject.version)
			);
			const aSortedFilteredFlexObjects = StorageUtils.sortFlexObjects(aFilteredFlexObjects);
			const mGroupedFlexObjects = StorageUtils.getGroupedFlexObjects(aSortedFilteredFlexObjects);
			const aResponses = StorageUtils.filterAndSortResponses(mGroupedFlexObjects);
			if (aResponses.length) {
				aResponses[0].cacheKey = calculateCacheKey(aSortedFilteredFlexObjects);
			}
			return aResponses;
		}
Provides the flex data stored in the session or local storage;
Changes can be filtered by reference and layer.

@param {object} mPropertyBag - Properties needed by the connectors
@param {string} mPropertyBag.reference - Reference of the application
@param {string} [mPropertyBag.version] - Version of the adaptation to be loaded
@returns {Promise<Object>} - Resolving with an object containing a data contained in the changes-bundle