How can I manage different versions of a requirement, for different versions of my product?

The best way to achieve this in Matrix is to introduce some labels. In order to use them, you need to have the variants/labels module. 
You can define version-related labels (V1, V2.0, V2.1) and tag some requirements / specifications / tests with one or more labels, indicating to which version they apply.

When this is done, you can:

  • Filter the whole tree with respect to one or more label (or NOT label).
  • Produce a document with a given filter (so for example the V1.0 version of any document).

The Labels and filters are described here.