Xilinx Spartan 3AN FPGA's have internal flash making them nonvolatile. Your question is actually multiple questions.
1) Are FPGA's volatile or non-volatile? Most are volatile, requiring the configuration bitstream to be read into the FPGA from an external nonvolatile storage device at every power on. There are some that are nonvolatile. Like the Xilinx S3AN I mention.
2) How do you protect the configuaration bitstream? There are multiple answers to this question.
You can encrypt the bitstream; which means to say that the bitstream that is stored on the above discussed nonvolatile storage device is a unique ciphertext that can only be decrypted by the single fpga with the appropriate key. This will protect the bitstream's functionality from being discovered by reverse engineering. That is to say that even if the enciphered bitstream is able to be extracted from the nonvolatile storage device, either in-situ or more destructive means, sense will not be able to be made from the extracted file since it is encrypted.
You can also set the bitstream to be prohibited from being readback. The JTAG interface that one uses to program an FPGA at debug time can generally be used to read the configuration bitstream back out of the fpga. Setting the NO_READBACK option prohibits this.