My understanding is that only version 0 is defined but other versions are considered valid to allow extensions using soft forks, but are they non-standard at the moment?
See @Pieter Wuille's comment, currently all witness programs with versions other than
0 will be rejected as non-standard. See interpreter.cpp L1447
Edit: As of
v0.16.2, it appears that all version bytes will at least enter the mempool, provided the rules for version
0x0 (if used) are followed. See BIP 141 - Witness Program, BIP 143 - Restrictions on Public Key Type and policy.cpp#L232
Currently, versions bytes higher than
0 will cause the
VerifyWitnessProgram function to always return true (for future softfork compatibility). Currently version bytes
1-16 are reserved for future use, but, "for any version byte from
0 to 16, the script must fail if the witness program has a
CastToBool value of zero."