If my roofer has no insurance, can I get a document for him to sign to protect me if either he or his helper gets hurt?
You would need *each* person to waive, or give up, their right to sue you if they are injured on the job--that is, the roofer cannot give up rights on behalf of his workers, so each worker would have to sign. The agreement would state that as consideration for being able to work on your roof, the signatory gives up his right to sue you for any injuries arising out of working on your roof. But that will still only protect you from the "normal" risks of roofing--e.g. of tripping/slipping and falling off the roof. It will not protect you if there is some dangerous condition on your property, since homeowners have the legal obligation to protect visitors from such conditions--so if there is, say, a weak patch of roof that cracks under someone's foot and causes a fall, because the fall was caused not by the inherent nature of roofing but by a condition on your property, you could potentially be liable despite the waiver. And the waiver will not protect you from bring sued if the roofer drops a shingle or 2-by-4 on a passer-by's head, or through the windshield of someone's car: the person who is hurt or who's property is damaged may try suing you instead of or in addition to the roofer.
And what if the roofer damages your home--if he has no insurance, how would you recover compensation from him, if, say, he goes out of business or is insolvent?
You really should not hire contractors who lack insurance.