1. A method of data processing in a data processing system including a processor core having an associated upper level cache and a lower level victim cache, said method comprising: in response to a memory access request of the processor core that specifies a non-modifying access to a target coherency granule, determining whether the memory access request hits or misses in a directory of the lower level victim cache; in response to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state: the lower level victim cache providing the target coherency granule of the memory access request to the upper level cache; and the lower level victim cache preserving the target coherency granule in the lower level victim cache in a shared coherence state if the memory access request is of a first type and the lower level victim cache invalidating the target coherency granule if the memory access request is of a second type.